At first sight it's not really a 'bug' as such, but more that skins were not designed for use with the swap side process.
A little logic is applied by LFS when flipping the mapping, which it does for each mapping that is used by any triangle that is set to swap sides.
That is:
IF texture is skin OR texture is mirror/clocks OR mapping name starts U_
> avoid flip
ELSE // standard texture
> do not avoid flip
For Flame's case: If you do it with the texture *not* as a skin, then I think you get the result you want. In that case you can make it act as if it was a skin by naming the mapping "U_..."
It seems we have a way to force mappings using standard textures to "avoid flip", by naming them "U_..." but the trouble is we don't have a way to do the opposite thing, force mappings using a skin to "not avoid flip".
I don't know what the best solution would be yet. A special name will not work, as you already named them like C1_ or M2_ etc. I suppose we would need a special switch in the mapping to force the required swapping behavior.
Or maybe I'm barking up the wrong tree and really the exclusion "texture is skin" should be excluded from the code above.
I've tried this and it seems to work with normal cars. Also it 'works' with Henricat's BUG WAGON. That now behaves as Flame would like the bus to behave. Image swaps side with the driver swap, and text is reversed. But there is no "shading error" where the darker patches are on the shaded texture. But with standard mapped cars I'm not seeing a problem.
The only question now is, how much stuff will be broken if I simply remove this code, that looks like it was added for a reason? Maybe that reason is simply no longer valid? One way could be - release a test patch quickly and see if the complaints come in!